home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 February
/
PCWorld_2000-02_cd.bin
/
Software
/
Servis
/
FFE
/
MISC.SWG
/
0007_SWG (SWAG).pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-09-04
|
2KB
|
43 lines
--------?-SWG-------------------------------
Since the inception of SWAG over two years ago, it has become a standard
library used by PASCAL programmers all over the world. I often receive
mail from users wanting to create their own SWAG packets. Therefore, I'm
releasing SWAGADD which is the program that I use to create the new
snipets every 90 days.
SWAG (.SWG) files are actually highly compressed LZH archive files with
extensions to the header and a double splayed sliding dictionary
compressed buffer.
The SWAG file headers have this structure :
TYPE
SwagHeader =
RECORD
HeadSize : BYTE; {size of header}
HeadChk : BYTE; {checksum for header}
HeadID : ARRAY [1..5] OF CHAR; {compression type tag}
NewSize : LONGINT; {compressed size}
OrigSize : LONGINT; {original size}
Time : WORD; {packed time}
Date : WORD; {packed date}
Attr : WORD; {file attributes and flags}
BufCRC : LONGINT; {32-CRC of the Buffer }
Swag : STRING[12]; {stored SWAG filename}
Subject : STRING[40]; {snipet subject}
Contrib : STRING[35]; {contributor}
Keys : STRING[70]; {search keys, comma deliminated}
FName : PathStr; {filename (variable length)}
CRC : WORD; {16-bit CRC (immediately follows FName)}
END;
Following each header is a highly compressed buffer optimized for space
and extraction speed. This makes the extraction or viewing of snipets
VERY VERY FAST. Unfortunately, you WILL NOT be able to use standard LZH
code to decompress this buffer, however, you'll find code in the SWAG
distribution to read the headers. Maybe someday, I'll release the
decompression code to the public domain, but for now, it's copyrighted,
and unavailable.